#ifndef PERSONALPROFILEPAGE_H
#define PERSONALPROFILEPAGE_H

#include <QWidget>
#include <QLabel>
#include <QPushButton>

namespace Ui {
class PersonalProfilePage;
}

/**
 * @brief 个人资料页面类，展示和管理用户个人信息
 */
class PersonalProfilePage : public QWidget
{
    Q_OBJECT

public:
    /**
     * @brief 构造函数，初始化个人资料页面
     * @param parent 父窗口指针
     */
    explicit PersonalProfilePage(QWidget *parent = nullptr);

    /**
     * @brief 析构函数，释放资源
     */
    ~PersonalProfilePage();

    /**
     * @brief 设置用户信息
     * @param userId 用户ID
     * @param username 用户名
     * @param age 年龄
     */
    void setUserInfo(const QString &userId, const QString &username, int age);

signals:
    /**
     * @brief 返回上一级页面信号
     */
    void back();

    /**
     * @brief 跳转资料编辑页面信号
     */
    void toEditProfile();

    /**
     * @brief 跳转密码修改页面信号
     */
    void toChangePassword();

private slots:
    /**
     * @brief 编辑按钮点击事件处理
     */
    void onEditClicked();

    /**
     * @brief 密码修改按钮点击事件处理
     */
    void onPasswordClicked();

    /**
     * @brief 返回按钮点击事件处理
     */
    void onBackClicked();

private:
    Ui::PersonalProfilePage *ui;      ///< UI对象指针
    QLabel *m_userIdLabel;            ///< 用户ID标签
    QLabel *m_usernameLabel;          ///< 用户名标签
    QLabel *m_ageLabel;               ///< 年龄标签
    QPushButton *m_editBtn;           ///< 编辑按钮
    QPushButton *m_passwordBtn;       ///< 密码修改按钮
    QPushButton *m_backBtn;           ///< 返回按钮

    /**
     * @brief 初始化UI组件
     */
    void initUI();
};

#endif // PERSONALPROFILEPAGE_H
